// import com.alibaba.druid.sql.ast.SQLStatement;
// import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlStatementImpl;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../statement/MySqlStatementImpl.h"

class MySqlDeclareHandlerStatement : virtual public MySqlStatementImpl
{
public:
  // DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement

  // handler type
  MySqlHandlerType_ptr handleType;
  // sp statement
  SQLStatement_ptr spStatement;

  ConditionValue_list_ptr conditionValues;

  MySqlDeclareHandlerStatement();
  SHAREDOBJECT(MySqlDeclareHandlerStatement);

  ConditionValue_list_ptr getConditionValues();

  void setConditionValues(ConditionValue_list_ptr conditionValues);

  MySqlHandlerType_ptr getHandleType();

  void setHandleType(MySqlHandlerType_ptr handleType);

  SQLStatement_ptr getSpStatement();

  void setSpStatement(SQLStatement_ptr spStatement);

  // @Override
  void accept0(MySqlASTVisitor_ptr visitor);
};
